package com.zmn.oms.common.dro.orderpay;

import com.zmn.oms.common.constant.OrderPayConsts;
import com.zmn.oms.common.dio.normal.orderadd.OrderPayDiscountDIO;
import com.zmn.oms.common.dto.OmsBaseOperator;
import com.zmn.oms.common.dto.OmsOperator;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 类描述：支付结果模型
 *
 * @author heciqi
 * @date 2021/07/19 14:43
 */
@Data
public class OrderPayResultDRO extends OmsOperator implements Serializable {

	/**
	 * 支付平台
	 */
	private Integer payPlat;

	/**
	 * 订单id
	 */
	private Long orderId;

	/**
	 * 工单Id
	 */
	private Long workId;

	/**
	 * 订单支付金额类型
	 * @see OrderPayConsts#ORDER_PAY_PREPAY
	 */
	private Integer amountType;

	/**
	 * 交易类型：1实时到账， 3 退款
	 * @see com.zmn.pay.common.constant.PayConsts#PAY_TRADE_TYPE_INTIME
	 */
	private Integer tradeType;

	/**
	 * 支付状态
	 */
	private Integer payStatus;

	/**
	 * 支付渠道
	 * @see com.zmn.pay.common.constant.PayConsts#PAY_CHANNEL_PLATFORM_WEIXINPAY
	 */
	private Integer payChannelId;

	/**
	 * 支付方式
	 * @see com.zmn.pay.common.constant.PayConsts#PAY_TYPE_QR
	 */
	private Integer payType;

	/**
	 * 目标支付渠道
	 * @see com.zmn.pay.common.constant.PayConsts#PAY_CHANNEL_PLATFORM_WEIXINPAY
	 */
	private Integer payTargetChannelId;

	/**
	 * 目标支付方式
	 * @see com.zmn.pay.common.constant.PayConsts#PAY_TYPE_QR
	 */
	private Integer payTargetType;

	/**
	 * 合并支付内部流水号（商家流水号）
	 */
	private String mergeInnerTradeNo;

	/**
	 * 合并支付第三方流水号（平台流水号）
	 */
	private String mergePayOutTradeNo;

	/**
	 * 合并支付金额
	 */
	private Integer mergeAmount;

	/**
	 * 内部流水号（商家流水号）
	 */
	private String innerTradeNo;

	/**
	 * 第三方流水号（平台流水号）
	 */
	private String payOutTradeNo;

	/**
	 * 支付时间
	 */
	private Date payTime;

	/**
	 * 凭证图片
	 */
	private String imageUrls;

	/**
	 * 付款人类型
	 * @see com.zmn.common.constant.GlobalConsts#OPERATE_USER_TYPE_USER
	 */
	private Integer payerType;

	/**
	 * 付款人id
	 */
	private Long payerId;

	/**
	 * 付款人资金账号id
	 */
	private Long payerAccountId;

	/**
	 * 付款人第三方帐号(支付宝，微信.)
	 */
	private String payerThirdAccount;

	/**
	 * 付款账号名
	 */
	private String payerThirdAccountName;

	/**
	 *付款银行
	 */
	private String payerThirdAccountBank;

	/**
	 * 收款人类型
	 * @see com.zmn.common.constant.GlobalConsts#OPERATE_USER_TYPE_USER
	 */
	private Integer payeeType;

	/**
	 * 收款人id
	 */
	private Long payeeId;

	/**
	 * 收款人资金账号id
	 */
	private Long payeeAccountId;

	/**
	 * 收款人帐号
	 */
	private String payeeThirdAccount;

	/**
	 * 收款人帐号名称
	 */
	private String payeeThirdAccountName;
	/**
	 * 收款人一行
	 */
	private String payeeThirdAccountBank;

	/**
	 * 退款凭证数据
	 */
	private String refundImageData;

	/**
	 * 代付 1: 非代付  2：代付
	 */
	private Integer agentType;

	/**
	 * 支付金额
	 */
	private Integer amount;

	/**
	 * 经度
	 */
	private Double longitude;

	/**
	 * 纬度
	 */
	private Double latitude;

	/**
	 * 重复支付类别 0 无重复, 1 系统重复， 2 业务重复
	 * @see OrderPayConsts#ORDER_PAY_DUPLICATION_TYPE_NONE
	 */
	private Integer duplicateType;

	/**
	 * 验收id
	 */
	private Long acceptanceId;

	/**
	 * 支付明细id
	 */
	private Long orderPayId;

	private String appBizSubNo;

	/**
	 * 优惠信息
	 */
	private Map<String, String> discountGoods;

	/**
	 * 优惠信息
	 */
	private List<OrderPayDiscountDIO> orderPayDiscountList;
}
